package com.i8office.android.zhihuixinwu.module.contract;

import com.cyan.tools.base.BasePresenter;
import com.cyan.tools.base.BaseView;
import com.cyan.tools.callback.RequestCallback;
import com.cyan.tools.callback.SimpleCallback;
import com.i8office.android.zhihuixinwu.bean.Code;
import com.i8office.android.zhihuixinwu.bean.People;
import com.i8office.android.zhihuixinwu.bean.SendInfo;

import java.util.ArrayList;
import java.util.Map;

import io.reactivex.disposables.Disposable;

/**
 * Created by pc on 2018/7/8.
 */

public interface StaffContract {
    interface Model {
        Disposable getSendInfo(RequestCallback<SendInfo> callback, Map<String,String> map);
        Disposable searchPeople(RequestCallback<ArrayList<People>> callback,Map<String,String>map);
        Disposable checkBeforeSubmit(SimpleCallback<Code> callback, Map<String, String> map);
        Disposable send(SimpleCallback<Code> callback, Map<String, String> map);
        Disposable open(SimpleCallback<String> callback, Map<String, String> map);
        Disposable sendNotification(SimpleCallback<String> callback, Map<String, String> map);
    }

    interface View extends BaseView{
        void showResults(SendInfo sendInfo);
        void showPeoples(ArrayList<People> peoples);
        void checkResult();
        void submitResult();
        void openResult();
        void requestError();
    }

    interface Presenter extends BasePresenter{
        void getSendInfo(Map<String,String> map);
        void searchPeople(Map<String,String> map);
        void checkBeforeSubmit(Map<String,String> map);
        void submit(Map<String,String> map);
        void open(Map<String,String> map);
        void sendNotification(Map<String,String> map);
    }
}
